package kxfang.com.common.core.adapter;

import android.content.Context;
import android.content.res.Resources;

import java.util.List;

/**
 * 基类adapter要实现的方法的接口
 * @param <T>
 */
public interface IAdapterMethod<T> {
    Context getContext();

    Resources getResource();

    /**
     * 获取当前数据
     * @return
     */
    List<T> getDataList();

    /**
     * 判断当前数据是否为空
     * @return
     */
    boolean isEmpty();

    /**
     * 移除一个数据
     * @param object
     */
    void removeData(T object);

    /**
     * 移除某个位置的数据
     * @param position
     */
    void removeData(int position);

    /**
     * 添加一个数据
     * @param object
     */
    void addData(T object);

    /**
     * 在某个位置添加数据
     * @param position
     * @param object
     */
    void addData(int position, T object);

    /**
     * 批量添加数据,并去除重复数据
     * @param objects
     */
    void addAll(List<T> objects);

    /**
     * 清空当前数据
     */
    void clearData();
    /**
     * 直接更新当前数据
     * @param objects
     */
    void updateData(List<T> objects);
}
